perm filename SIMPLE.PUB[10X,AIL] blob
sn#429848 filedate 1979-04-07 generic text, type T, neo UTF8
.MEMO
.compact;
.STOPTEXT CENTER
TENEX/TOPS20 SAIL SIMPLIFIED
Robert Smith
Department of Computer Science
Rutgers University
April 1, 1978
Revised, 19-Mar-79, by C. Hedrick
.STARTTEXT
This memo describes how to put up a version of TENEX SAIL
on either a TENEX (version 31 or later) or TOPS20 (version 3) system.
As of March, 1979, a few modifications had been added to TENEX
SAIL to facilitate its use on TOPS20 version 3. These changes
are described below.
The complete assembly of TENEX/TOPS20 SAIL is described in TELLEM, the
SAIL implementor's guide. The sources for all SAIL systems are kept at
SU-AI and maintained there, so the sources can be obtained from there
via the ARPA NET. This distribution includes those sources needed to
make the tops-20 version of SAIL.
Fortunately, it should not be necessary to reassemble SAIL in
order to get a working TENEX SAIL system up on a standard TENEX (KI or
KA 10) system running 1.31 or later, or TOPS20 (KL processor) running
version 3 of TOPS20 or later. A current, standard TENEX/TOPS20 version
of SAIL will be kept at site Rutgers on directory XSAIL, and is
available from there via FTP in paged transfer mode. File
RUTGERS <XSAIL>SIMPLE-SAIL.RUNFIL contains a runfile that can be
used to perform the basic parts of the operations that are described
below, so the easiest thing to do is to execute that runfil.
This distribution contains all of the files mentioned below.
The .RUNFIL is not included, since it is assumed that transfers
over the ARPAnet are not relevant to sites receiving this distribution.
FILES FOR THE BASIC COMPILER. Put the following on
directory <SAIL>. The SAIL
system, like the LISP system, assumes that you have a dedicated
directory. If you are running Tops-20, you should define a system logical device
SAI: as PS:<SAIL>. Or course if you really wanted to, you could
define SAI: as <SUBSYS> and get along without a separate directory,
but we do not recommend this. To define SAI:, insert the DEFINE
command into <SYSTEM>3-CONFIG.CMD. Should you be running Tenex,
logical devices are not used, so all references are to <SAIL>
directly.
.STOPTEXT
T-6-SAISG8.EXE ;runtime segment (.SAV if on Tenex)
;if you get this through a Tops-10 site, this
;file will be called SAISG8.EXE, because of
;the 6-character limit.
HLBSA8.REL ;"library"
LIBSA8.REL ;"library"
3OPS3.OPS ;TENEX opcode table, PDP10 instructions,
;jsyses
BKTBL.BKT ;default breaktable for STDBRK function
GOGTAB.DEF ;user table definitions file
.STARTTEXT
Put the following files on some directory in SYS: (<SUBSYS>
on Tenex). These files can
live anywhere, but the most natural place is SYS:. (You may have
to be a wheel to put them there.)
.stoptext group
SYS:
SAIL.EXE ;compiler
;on Tenex make this have name "SAIL.SAV"
LOWTSA.REL ;linkage to runtime system
.starttext
LOADING SAIL programs. Tops-20 SAIL will automatically
load with LINK if you use the /G switch. There should be no
problem with recent DEC versions of LINK. Some Tenex sites
prefer to use LOADER, because their versions of LINK10 are out
of date and do not support SAIL properly.
If you use LOADER,
you may find that you must reassemble it with an increase in the
assembly parameter RELLEN (the number of REQUIREd files). This
is especially true if you use BAIL. If you use LINK, note that
SAIL uses the old format JOBDAT symbols (e.g., JOBSA instead of .JBSA).
There is an assembly switch in LINK for this.
However, our normal assembly procedure includes appending JOBDAT.REL
to LOWTSA.REL. Since this copy of JOBDAT.REL contains the old format symbols
you should have no problem. Sites using a version of LINK with the
old symbols need not append JOBDAT to LOWTSA.
LINKAGE TO THE EXEC. The standard EXEC distributed by DEC
for Tops-20 understands about the SAIL compiler. Thus you should be
able to use EXECUTE and COMPILE commands. However at the moment the
DEBUG command will not work, since it will attempt to load SDDT.REL.
We suggest instead using LOAD followed by DDT to debug a SAIL program
with DDT. Later releases will include appropriate EXEC patches to
invoke BAIL with the DEBUG command.
If you attempt to compile a program from a different directory
than your connected directory, this will fail. The DEC EXEC will
pass a Tops-10 PPN (!!!!!), while SAIL expects a directory name.
These problems can be fixed with simple patches to the EXEC, if you
are a source site.
NEW OPCODE TABLE. You can make a new opcode table 3OPS3.OPS
using the program MAKTAB.TNX. This program reads your MONSYM.MAC
(STENEX.MAC or .FAI on Tenex), file and writes out a new 3OPS3.OPS, including your jsyses
into the PDP10(KA) instruction set. To do this,
.stoptext group;
@SAIL ;use new compiler
TENEX SAIL etc
*MAKTAB.TNX
;various messages about compilation
*α↑C
@LINK
*SYS:LOWTSA,DSK:MAKTAB/G
;loader exits
@START
INPUT FILE FOR JSYS'ES (STENEX.FAI) *MONSYM.MAC
;writes out new opcode table
.starttext
The 3OPS3.OPS file supplied has the JSYSes available at SUMEX.
It will therefore work, but is not optimal.
INSTALLING BAIL. The following files should be put on
directory <SAIL> in order to have the BAIL debugging system available.
.stoptext GROUP;
BAICLC.REL,SM1
BAIIO1.REL,SM1
BAIIO2.REL,SM1
BAIMSC.REL,SM1
BAIPRC.REL,SM1
BAISM1.REL
BAIL.SAI
BAIPD8.SAI,SM1
.starttext
If you are a Tenex site, you will have to do some reassembly:
This is because certain parts of BAIL have assembly-time conditionals,
and because BAIL and BAIPD8 include require statements for which
the compiler must produce PPN's appropriate for your particular
system. DO NOT ATTEMPT TO USE BAI*.REL FROM ANOTHER SITE. (The .SM1
files are transportable.)
There is a file TENEX.RUN which is supposedly a run file to do what
is needed. Slight modifications may be needed for your site, depending
upon what loader you use, etc.
ADDITIONAL FILES. Several additional files are on directory
<XSAIL>. These include:
.stoptext
PROFIL.SAI ;the execution counter system
PROFIL.DOC ;simple description of above -- see
;SAIL MANUAL by Kurt Van Lehn for a
;description
.starttext
CURRENT STATE. At present, there is no new development
of the SAIL language, and issues of maintenance have become
unclear. In order to support current users, and in order to
make available to TOPS20 users the most complete ALGOL-like language
for use in the TENEX/TOPS20 environment, we are undertaking very
limited maintenance specifically for TENEX and TOPS20 problems.
The file SAIL.DOC, included with this distribution,
will indicate the nature of the changes made for Tops-20.
The same code (compiler, object code, and runtime
system) now runs under both TENEX and TOPS20 version 3.
It is our intention to support TENEX/TOPS20 SAIL to the
extent needed to keep the system from falling completely in its tracks.
At present, we have very limited resources for doing this. I would
appreciate your reporting any questions/problems to HEDRICK@RUTGERS.
Suggestions for improvements
will also be appreciated but will, at least for now, be
given low priority. We would like a list of users,
so please send us your names.